<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原型的初步认识</title>
</head>
<body>
    
</body>
<script>
    /*
        原型： 是一些数据类型的基础，比如像class类 简单的可以理解成是原型的一种语法糖，
            所以我们必须对原型要有很深的理解，  面试的时候也是经常会考到
    */
    let arr = [1,2,3,4,5]
    console.log(arr)  //__proto__ 就是他的原型
    // 有时候我们会发现一个数据类型的原型中还有原型，原型的原型里面还有原型  我们可以简单的理解成这个其实是一种族谱关系  他们是是这些的父亲
    let newarr = arr.concat(7,8,9)
    console.log(newarr)  //[1, 2, 3, 4, 5, 7, 8, 9]
    // 这里我们就会思考  为什么arr会有concat这个数组拼接方法呢？  本身并没有给这个数组定义方法呀~
    // 其实我们呢在控制台中打印寻找就会发现  数组的__proto__里面有concat这个拼接方法  所以说明了原型是我们这个数组类型的父亲 类型继承了原型的一些方法

    // 各种数据的原型链上原型的个数是不一样的   数组的原型链上有三个原型
    // 对象的原型链上只有两个原型
</script>
</html>